#pragma once
#include "Defines.h"
#include "Structs.h"
#include "TimerClock.h" // 包含 TimerClock 定义

// --- 全局游戏状态变量 ---
extern Plane player;                    // 玩家飞机
extern Bullet bullets[MAX_BULLETS];     // 全局子弹数组
extern Enemy enemies[MAX_TOTAL_ENEMIES];// 全局敌机数组
extern int activeEnemies;               // 当前活动敌机数量
extern int current_level;               // 当前关卡编号
extern SaveData current_save;           // 加载的存档数据
extern SaveData new_save;               // 新游戏开始时的数据

// --- 图形与计时 ---
extern IMAGE image_Equipment[MAX_EQUIPMENT_IMAGES]; // 装备图片
extern IMAGE image_Plane[MAX_PLANE_IMAGES];         // 飞机图片
extern IMAGE image_Bullet[MAX_BULLET_IMAGES];       // 子弹图片
extern IMAGE image_View[MAX_VIEW_IMAGES];           // 视图/背景图片
extern IMAGE image_Button[MAX_BUTTON_IMAGES];       // 按钮图片
extern IMAGE image_Enemy[MAX_ENEMY_IMAGES];         // 敌机图片
extern int map_y;                                   // 背景滚动位置
extern TimerClock globalTimer;                      // 全局计时器 (如果仍在使用)
extern ExMessage msg;                               // EasyX 消息结构体 (直接输入方式下可能较少使用)

// --- 关卡数据 ---
extern LevelConfig levels[]; // 在 Globals.cpp 中定义
extern BossConfig boss[];   // 在 Globals.cpp 中定义

// --- 装备库 ---
extern Equipment game_equipment_library[]; // 在 Globals.cpp 中定义

// --- 输入状态变量 (如果复杂，考虑移至 Input.cpp/h) ---
// 注册视图
extern const int max_len;           // 最大输入长度
extern char text[3][11];            // 存储输入文本 (大小基于 max_len 调整)
extern RECT rect[3];                // 输入框矩形区域
extern int curr_flag;               // 当前选中的输入框索引
extern int curr_len[3];             // 各输入框当前长度
// 密码视图
extern const int textlen_max;       // 最大文本长度
extern char text_password[3][256];  // 密码输入文本
extern int curr_len_password[3];    // 密码框当前长度
extern RECT rect_password[3];       // 密码框矩形区域
extern int curr_flag_password;      // 当前密码框索引
// 登录视图
extern char login_text[2][256];     // 登录输入文本
extern int login_curr_len[2];       // 登录框当前长度
extern RECT rect_login[2];          // 登录框矩形区域
extern int login_curr_flag;         // 当前登录框索引
// 仓库视图 (考虑重构此状态)
extern int h[2][5][7];              // 用途不明的数组，需要审查
// 敌机射击计时器
extern ULONGLONG enemyShootTimer[MAX_TOTAL_ENEMIES];
